package ListDemo;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;

/**
 * Created with IntelliJ IDEA.
 * Description:List的遍历方式
 * User: 阿宾
 * Date: 2024-11-02
 * Time: 16:23
 */
public class Demo3 {
    /*
    List系列集合的五种遍历方式：
           1.迭代器
           2.列表迭代器
           3.增强for
           4.Lambda表达式
           5.普通for循环
     */
    public static void main(String[] args) {
        //1.创建集合添加元素
        List<String> list = new ArrayList<>();
        list.add("aaa");
        list.add("bbb");
        list.add("ccc");
        list.add("ddd");

        //1.迭代器遍历
        //创建迭代器对象
        Iterator<String> iterator = list.iterator();
        while (iterator.hasNext()){//判断当前位置是否有元素
            String str = iterator.next();//获取当前位置元素，并移动迭代器对象到下一个位置

            System.out.println(str);
        }

        System.out.println("===============");
        //2.增强for遍历
        for (String s : list) {
            System.out.println(s);
        }
        System.out.println("================");
        //3.普通for循环
        for (int i = 0; i < list.size(); i++) {
            String str = list.get(i);
            System.out.println(str);
        }
        System.out.println("================");
        //4.列表迭代器
        //获取一个列表迭代器的对象，里面的指针默认也是指向0索引的

        //额外添加了一个方法：在遍历的过程中，可以添加元素
        ListIterator<String> it = list.listIterator();
        while(it.hasNext()){
            String str = it.next();
            if("bbb".equals(str)){
                //qqq
                it.add("qqq");//使用迭代器对象进行添加，而不是集合对象
            }
        }

    }
}
